package it.poli.IA.space;

import it.poli.IA.exceptions.NullActionException;

public abstract class State {

	public  abstract State getResult(Action a) throws CloneNotSupportedException;

	public abstract  boolean isAppliable(Action a) throws NullActionException;

	public abstract State getSameDimensionGoalState() ;
	
	public abstract String toString();
	
	public abstract	 Integer cost(Action a) ; //cost from the "this" state to perform that action
}
